package cn.s1995.sloth.bizs.oo.vo;

import cn.s1995.sloth.bizs.entity.UserAddress;
import cn.s1995.sloth.bizs.oo.dto.CouponOrderDTO;
import cn.s1995.sloth.bizs.oo.dto.ShopCartOrderDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * ShopCartOrderMergerDTO
 *
 * @author Lex
 * @description
 * @date 2023/12/26 18:39
 */
@Data
@Schema(description = "购物车合计")
public class ShopCartOrderMergerVO implements Serializable {

    /**
     * 实际总值
     */
    @Schema(description = "实际总值" , required = true)
    private BigDecimal actualTotal;

    /**
     * 运费总值
     */
    @Schema(description = "运费总值" , required = true)
    private BigDecimal freightTotal;

    /**
     * 商品总值
     */
    @Schema(description = "商品总值" , required = true)
    private BigDecimal total;

    /**
     * 商品总数
     */
    @Schema(description = "商品总数" , required = true)
    private Integer totalCount;

    /**
     * 订单优惠金额(所有店铺优惠金额相加)
     */
    @Schema(description = "订单优惠金额(所有店铺优惠金额相加)" , required = true)
    private BigDecimal orderReduce;

    /**
     * 用户地址
     */
    @Schema(description = "用户地址" , required = true)
    private UserAddress userAddr;

    /**
     * 每个店铺的购物车信息
     */
    @Schema(description = "每个店铺的购物车信息" , required = true)
    private List<ShopCartOrderDTO> shopCartOrders;

    /**
     * 整个订单可以使用的优惠券列表
     */
    @Schema(description = "整个订单可以使用的优惠券列表" , required = true)
    private List<CouponOrderDTO> coupons;
}
